ラズベリーパイ pico で遊んでみる(2023年4月)
ラズベリーパイ pico という千円以下で入手可能なマイコンボードで遊んでみることにします。
まずは環境を整える必要がありますが、
pico のソフトウェアを作成するにはもうひとつラズベリーパイ(またはLinux)が必要になるようです。
ラズベリーパイ財団のお勧めはラズベリーパイ4のようですが、私の手持ちはラズベリーパイ 3b だけなので、
これを使うことにします。ただしこのラズベリーパイ 3b は、SSD拡張ボードを用いていましてストレージ容量は256GBあります。
おそらくラズベリーパイ4くらいのスペックがあって、
それで動作するツールを使いこなすことができれば開発環境としては充分かもしれませんが、
WindowsやMacなどのPCに慣れているようであればSSH接続などして他の使い慣れたツールを使った方が良いかもしれません。
とりあえず私が最初にやりたいことはサンプルプログラムのLチカと別途購入した液晶表示器に何かを表示させることです。
...というわけなので、早速いってみましょう。
目次
環境を整える
液晶表示器
最後に
環境を整える
ラズベリーパイのホームページを見ると一通りのやり方が記述されているようですが、
私はpico関連の書籍(※1)を購入してしまいましたのでそれを参考にさせて頂きたいと思います。
まずは手持ちのラズベリーパイ 3b に最新のOS(raspbian 64bit)をインストールします。
Raspberry Pi Imagerを使って簡単にインストールできました。
(注意)他の作業をしていてgccやmake、cmakeなどの基本的なツールはすでにこの段階でインストールしてしまいました。
もし下の作業を進めるにあたってエラー等が発生したときは必要なツールをインストールしてください。
...と言ってもgcc、make、cmakeくらいだと思いますが...。
ホームディレクトリ(~/)で以下のコマンドを順番に実行します。
$ sudo apt install -y libusb-1.0-0-dev
環境を整えるスクリプトをダウンロードします。
$ wget https://raw.githubusercontent.com/raspberrypi/pico-setup/master/pico_setup.sh
ホームディレクトリにpico_setup.shというスクリプトがダウンロードされたと思います。
それを実行可能にするために権限を与えます。
$ chmod +x pico_setup.sh
スクリプトを実行します。
$ SKIP_OPENOCD=1 SKIP_VSCODE=1 ./pico_setup.sh
以上、正常に完了すればpicoディレクトリが作成されてサンプルプログラムなどもダウンロードされているはずです。
続いてサンプルプログラムをコンパイルします。
コンパイルするにはcmakeを実行してMakefileを作成し、あらためてmakeを実行する必要があります。
サンプルプログラムをコンパイルするため、ディレクトリを移動します。
$ cd ~/pico/pico-examples/build/ $ cmake ..
上のcmakeコマンドの..は親ディレクトリを指定していまして、CMakeLists.txtの場所を指定しています。
cmakeはCMakeLists.txtに記述している内容に従いMakefileを作成します。
CMakeLists.txtはツリー構造(ディレクトリ構造)を持ち、サブディレクトリにあるCMakeLists.txtと連携します。
makeコマンドでサンプルプログラムをコンパイルします。
下のコマンドを実行するとサンプルプログラムすべてをコンパイルします。
ある程度時間がかかりますのでご注意ください。
なお、オプションの -j4 は並列処理を指定しているそうです。
$ make -j4
なお、個別にコンパイルするときはディレクトリ(プロジェクト名)を指定します。
$ make blink
*.uf2 というファイルをpicoにコピーすれば書き込み完了です。
書き込むときは pico の白いボタンを押しながら電源を投入するとストレージモードで起動しますので、
ラズベリーパイ 3b (他のPCに接続すれば他のPCでも)からストレージとして認識され、
*.uf2というファイルをコピーすることで書き込むことができます。
blink.uf2 をpicoにコピーすると直ちに実行され、picoに搭載されているLEDが点滅を始めました。
無事に実行され、とりあえず一安心です。
※1 ラズベリー・パイ Pico/Pico W 攻略本(CQ出版社)
液晶表示器
続いて液晶ですが、アマゾンで ※2 という液晶が安かったのでpicoと一緒に購入していました。
最初、私は「サンプルプログラムを見ながら改造等が必要だろう」と思っていたのですが、
サンプルプログラムに lcd_1602_i2c というものを見つけたので、
「あれっ!これはそのまま使えるのでは...」と思い、ソースプログラムを見てみました。
すると i2c アドレス がソースプログラムと同じ 0x27 であったため、
ほぼ使えると確信しました。あとはハードウェアの方ですが電源が5Ⅴであったため下記のように配線しました。
(手書きですが...分かりますよね!?)。
信号線のプルアップ抵抗は4.7KΩくらいで良いようなので手持ちの6KΩくらいのものを使用しました。
上記のように配線し、電源を投入...あれっ!表示されない...特に問題になるような箇所は無いはず...と思って、
ひょっとして...と思い、液晶の後ろに付いているボリュームを回したところ、めでたく表示が出ました!!
というわけなので、表示が出ないときはボリュームを回してみましょう。
※2 WayinTop 1602 LCD ディスプレイモジュール 16×2キャラクタ 青 バックライト付き 白抜き + IIC/I2C/TWI/SPI
シリアルインターフェイス シリアルI/F モジュールポート
最後に
今回はここまでです。
次回があるかは分かりません。
HPにUPしたくなるようなことをしたらUPしますので期待しないでお待ちください。